<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Evaluate data frame analytics API | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="ml-df-analytics-apis.html" title="Machine learning data frame analytics APIs">
<link rel="prev" href="delete-inference.html" title="Delete inference trained model API">
<link rel="next" href="explain-dfanalytics.html" title="Explain data frame analytics API">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="rest-apis.html">REST APIs</a></span>
»
<span class="breadcrumb-link"><a href="ml-df-analytics-apis.html">Machine learning data frame analytics APIs</a></span>
»
<span class="breadcrumb-node">Evaluate data frame analytics API</span>
</div>
<div class="navheader">
<span class="prev">
<a href="delete-inference.html">« Delete inference trained model API</a>
</span>
<span class="next">
<a href="explain-dfanalytics.html">Explain data frame analytics API »</a>
</span>
</div>
<div class="section xpack">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="evaluate-dfanalytics"></a>Evaluate data frame analytics API<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a><a class="xpack_tag" href="/subscriptions"></a>
</h2>
</div></div></div>

<p>Evaluates the data frame analytics for an annotated index.</p>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>This functionality is experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.</p>
</div>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="ml-evaluate-dfanalytics-request"></a>Request<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h3>
</div></div></div>
<p><code class="literal">POST _ml/data_frame/_evaluate</code></p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="ml-evaluate-dfanalytics-prereq"></a>Prerequisites<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h3>
</div></div></div>
<p>If the Elasticsearch security features are enabled, you must have the following privileges:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
cluster: <code class="literal">monitor_ml</code>
</li>
</ul>
</div>
<p>For more information, see <a class="xref" href="security-privileges.html" title="Security privileges">Security privileges</a> and <a class="xref" href="built-in-roles.html" title="Built-in roles">Built-in roles</a>.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="ml-evaluate-dfanalytics-desc"></a>Description<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h3>
</div></div></div>
<p>The API packages together commonly used evaluation metrics for various types of
machine learning features. This has been designed for use on indexes created by
data frame analytics. Evaluation requires both a ground truth field and an analytics
result field to be present.</p>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="ml-evaluate-dfanalytics-request-body"></a>Request body<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">evaluation</code>
</span>
</dt>
<dd>
<p>
(Required, object) Defines the type of evaluation you want to perform.
See <a class="xref" href="evaluate-dfanalytics.html#ml-evaluate-dfanalytics-resources" title="Data frame analytics evaluation resources">Data frame analytics evaluation resources</a>.
</p>
<p>Available evaluation types:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<code class="literal">binary_soft_classification</code>
</li>
<li class="listitem">
<code class="literal">regression</code>
</li>
<li class="listitem">
<code class="literal">classification</code>
</li>
</ul>
</div>
</dd>
<dt>
<span class="term">
<code class="literal">index</code>
</span>
</dt>
<dd>
(Required, object) Defines the <code class="literal">index</code> in which the evaluation will be
performed.
</dd>
<dt>
<span class="term">
<code class="literal">query</code>
</span>
</dt>
<dd>
(Optional, object) A query clause that retrieves a subset of data from the
source index. See <a class="xref" href="query-dsl.html" title="Query DSL">Query DSL</a>.
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="ml-evaluate-dfanalytics-resources"></a>Data frame analytics evaluation resources<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="binary-sc-resources"></a>Binary soft classification evaluation objects<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h4>
</div></div></div>
<p>Binary soft classification evaluates the results of an analysis which outputs
the probability that each document belongs to a certain class. For example, in
the context of outlier detection, the analysis outputs the probability whether each
document is an outlier.</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">actual_field</code>
</span>
</dt>
<dd>
(Required, string) The field of the <code class="literal">index</code> which contains the <code class="literal">ground truth</code>.
The data type of this field can be boolean or integer. If the data type is
integer, the value has to be either <code class="literal">0</code> (false) or <code class="literal">1</code> (true).
</dd>
<dt>
<span class="term">
<code class="literal">predicted_probability_field</code>
</span>
</dt>
<dd>
(Required, string) The field of the <code class="literal">index</code> that defines the probability of
whether the item belongs to the class in question or not. It’s the field that
contains the results of the analysis.
</dd>
<dt>
<span class="term">
<code class="literal">metrics</code>
</span>
</dt>
<dd>
<p>
(Optional, object) Specifies the metrics that are used for the evaluation.
Available metrics:
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">auc_roc</code>
</span>
</dt>
<dd>
(Optional, object) The AUC ROC (area under the curve of the receiver
operating characteristic) score and optionally the curve. Default value is
{"includes_curve": false}.
</dd>
<dt>
<span class="term">
<code class="literal">confusion_matrix</code>
</span>
</dt>
<dd>
(Optional, object) Set the different thresholds of the outlier score at where
the metrics (<code class="literal">tp</code> - true positive, <code class="literal">fp</code> - false positive, <code class="literal">tn</code> - true
negative, <code class="literal">fn</code> - false negative) are calculated. Default value is
{"at": [0.25, 0.50, 0.75]}.
</dd>
<dt>
<span class="term">
<code class="literal">precision</code>
</span>
</dt>
<dd>
(Optional, object) Set the different thresholds of the outlier score at where
the metric is calculated. Default value is {"at": [0.25, 0.50, 0.75]}.
</dd>
<dt>
<span class="term">
<code class="literal">recall</code>
</span>
</dt>
<dd>
(Optional, object) Set the different thresholds of the outlier score at where
the metric is calculated. Default value is {"at": [0.25, 0.50, 0.75]}.
</dd>
</dl>
</div>
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="regression-evaluation-resources"></a>Regression evaluation objects<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h4>
</div></div></div>
<p>Regression evaluation evaluates the results of a regression analysis
which outputs a prediction of values.</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">actual_field</code>
</span>
</dt>
<dd>
(Required, string) The field of the <code class="literal">index</code> which contains the <code class="literal">ground truth</code>.
The data type of this field must be numerical.
</dd>
<dt>
<span class="term">
<code class="literal">predicted_field</code>
</span>
</dt>
<dd>
(Required, string) The field in the <code class="literal">index</code> that contains the predicted value,
in other words the results of the regression analysis.
</dd>
<dt>
<span class="term">
<code class="literal">metrics</code>
</span>
</dt>
<dd>
<p>
(Optional, object) Specifies the metrics that are used for the evaluation.
Available metrics:
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">mean_squared_error</code>
</span>
</dt>
<dd>
(Optional, object) Average squared difference between the predicted values and the actual (<code class="literal">ground truth</code>) value.
For more information, read <a href="https://en.wikipedia.org/wiki/Mean_squared_error" class="ulink" target="_top">this wiki article</a>.
</dd>
<dt>
<span class="term">
<code class="literal">r_squared</code>
</span>
</dt>
<dd>
(Optional, object) Proportion of the variance in the dependent variable that is predictable from the independent variables.
For more information, read <a href="https://en.wikipedia.org/wiki/Coefficient_of_determination" class="ulink" target="_top">this wiki article</a>.
</dd>
</dl>
</div>
</dd>
</dl>
</div>
</div>

</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="classification-evaluation-resources"></a>Classification evaluation objects<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h3>
</div></div></div>
<p>Classification evaluation evaluates the results of a classification analysis which
outputs a prediction that identifies to which of the classes each document
belongs.</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">actual_field</code>
</span>
</dt>
<dd>
(Required, string) The field of the <code class="literal">index</code> which contains the <code class="literal">ground truth</code>.
The data type of this field must be categorical.
</dd>
<dt>
<span class="term">
<code class="literal">predicted_field</code>
</span>
</dt>
<dd>
(Required, string) The field in the <code class="literal">index</code> that contains the predicted value,
in other words the results of the classification analysis.
</dd>
<dt>
<span class="term">
<code class="literal">metrics</code>
</span>
</dt>
<dd>
<p>
(Optional, object) Specifies the metrics that are used for the evaluation.
Available metrics:
</p>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term">
<code class="literal">accuracy</code>
</span>
</dt>
<dd>
(Optional, object) Accuracy of predictions (per-class and overall).
</dd>
<dt>
<span class="term">
<code class="literal">multiclass_confusion_matrix</code>
</span>
</dt>
<dd>
(Optional, object) Multiclass confusion matrix.
</dd>
<dt>
<span class="term">
<code class="literal">precision</code>
</span>
</dt>
<dd>
(Optional, object) Precision of predictions (per-class and average).
</dd>
<dt>
<span class="term">
<code class="literal">recall</code>
</span>
</dt>
<dd>
(Optional, object) Recall of predictions (per-class and average).
</dd>
</dl>
</div>
</dd>
</dl>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h3 class="title">
<a id="ml-evaluate-dfanalytics-example"></a>Examples<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h3>
</div></div></div>
<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="ml-evaluate-binary-soft-class-example"></a>Binary soft classification<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h4>
</div></div></div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _ml/data_frame/_evaluate
{
  "index": "my_analytics_dest_index",
  "evaluation": {
    "binary_soft_classification": {
      "actual_field": "is_outlier",
      "predicted_probability_field": "ml.outlier_score"
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/1851.console"></div>
<p>The API returns the following results:</p>
<div class="pre_wrapper lang-console-result">
<pre class="programlisting prettyprint lang-console-result">{
  "binary_soft_classification": {
    "auc_roc": {
      "score": 0.92584757746414444
    },
    "confusion_matrix": {
      "0.25": {
          "tp": 5,
          "fp": 9,
          "tn": 204,
          "fn": 5
      },
      "0.5": {
          "tp": 1,
          "fp": 5,
          "tn": 208,
          "fn": 9
      },
      "0.75": {
          "tp": 0,
          "fp": 4,
          "tn": 209,
          "fn": 10
      }
    },
    "precision": {
        "0.25": 0.35714285714285715,
        "0.5": 0.16666666666666666,
        "0.75": 0
    },
    "recall": {
        "0.25": 0.5,
        "0.5": 0.1,
        "0.75": 0
    }
  }
}</pre>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="ml-evaluate-regression-example"></a>Regression<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h4>
</div></div></div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _ml/data_frame/_evaluate
{
  "index": "house_price_predictions", <a id="CO596-1"></a><i class="conum" data-value="1"></i>
  "query": {
      "bool": {
        "filter": [
          { "term":  { "ml.is_training": false } } <a id="CO596-2"></a><i class="conum" data-value="2"></i>
        ]
      }
  },
  "evaluation": {
    "regression": {
      "actual_field": "price", <a id="CO596-3"></a><i class="conum" data-value="3"></i>
      "predicted_field": "ml.price_prediction", <a id="CO596-4"></a><i class="conum" data-value="4"></i>
      "metrics": {
        "r_squared": {},
        "mean_squared_error": {}
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/1852.console"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO596-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>The output destination index from a data frame analytics regression analysis.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO596-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>In this example, a test/train split (<code class="literal">training_percent</code>) was defined for the
regression analysis. This query limits evaluation to be performed on the test split
only.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO596-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p>The ground truth value for the actual house price. This is required in order
to evaluate results.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO596-4"><i class="conum" data-value="4"></i></a></p>
</td>
<td align="left" valign="top">
<p>The predicted value for house price calculated by the regression analysis.</p>
</td>
</tr>
</table>
</div>
<p>The following example calculates the training error:</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _ml/data_frame/_evaluate
{
  "index": "student_performance_mathematics_reg",
  "query": {
    "term": {
      "ml.is_training": {
        "value": true <a id="CO597-1"></a><i class="conum" data-value="1"></i>
      }
    }
  },
  "evaluation": {
    "regression": {
      "actual_field": "G3", <a id="CO597-2"></a><i class="conum" data-value="2"></i>
      "predicted_field": "ml.G3_prediction", <a id="CO597-3"></a><i class="conum" data-value="3"></i>
      "metrics": {
        "r_squared": {},
        "mean_squared_error": {}
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/1853.console"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO597-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>In this example, a test/train split (<code class="literal">training_percent</code>) was defined for the
regression analysis. This query limits evaluation to be performed on the train split
only. It means that a training error will be calculated.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO597-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>The field that contains the ground truth value for the actual student
performance. This is required in order to evaluate results.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO597-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p>The field that contains the predicted value for student performance
calculated by the regression analysis.</p>
</td>
</tr>
</table>
</div>
<p>The next example calculates the testing error. The only difference compared with
the previous example is that <code class="literal">ml.is_training</code> is set to <code class="literal">false</code> this time, so
the query excludes the train split from the evaluation.</p>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _ml/data_frame/_evaluate
{
  "index": "student_performance_mathematics_reg",
  "query": {
    "term": {
      "ml.is_training": {
        "value": false <a id="CO598-1"></a><i class="conum" data-value="1"></i>
      }
    }
  },
  "evaluation": {
    "regression": {
      "actual_field": "G3", <a id="CO598-2"></a><i class="conum" data-value="2"></i>
      "predicted_field": "ml.G3_prediction", <a id="CO598-3"></a><i class="conum" data-value="3"></i>
      "metrics": {
        "r_squared": {},
        "mean_squared_error": {}
      }
    }
  }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/1854.console"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO598-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>In this example, a test/train split (<code class="literal">training_percent</code>) was defined for the
regression analysis. This query limits evaluation to be performed on the test split
only. It means that a testing error will be calculated.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO598-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>The field that contains the ground truth value for the actual student
performance. This is required in order to evaluate results.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO598-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p>The field that contains the predicted value for student performance
calculated by the regression analysis.</p>
</td>
</tr>
</table>
</div>
</div>

<div class="section">
<div class="titlepage"><div><div>
<h4 class="title">
<a id="ml-evaluate-classification-example"></a>Classification<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ml/df-analytics/apis/evaluate-dfanalytics.asciidoc">edit</a>
</h4>
</div></div></div>
<div class="pre_wrapper lang-console">
<pre class="programlisting prettyprint lang-console">POST _ml/data_frame/_evaluate
{
   "index": "animal_classification",
   "evaluation": {
      "classification": { <a id="CO599-1"></a><i class="conum" data-value="1"></i>
         "actual_field": "animal_class", <a id="CO599-2"></a><i class="conum" data-value="2"></i>
         "predicted_field": "ml.animal_class_prediction", <a id="CO599-3"></a><i class="conum" data-value="3"></i>
         "metrics": {
           "multiclass_confusion_matrix" : {} <a id="CO599-4"></a><i class="conum" data-value="4"></i>
         }
      }
   }
}</pre>
</div>
<div class="console_widget" data-snippet="snippets/1855.console"></div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO599-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>The evaluation type.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO599-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>The field that contains the ground truth value for the actual animal
classification. This is required in order to evaluate results.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO599-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p>The field that contains the predicted value for animal classification by
the classification analysis.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO599-4"><i class="conum" data-value="4"></i></a></p>
</td>
<td align="left" valign="top">
<p>Specifies the metric for the evaluation.</p>
</td>
</tr>
</table>
</div>
<p>The API returns the following result:</p>
<div class="pre_wrapper lang-console-result">
<pre class="programlisting prettyprint lang-console-result">{
   "classification" : {
      "multiclass_confusion_matrix" : {
         "confusion_matrix" : [
         {
            "actual_class" : "cat", <a id="CO600-1"></a><i class="conum" data-value="1"></i>
            "actual_class_doc_count" : 12, <a id="CO600-2"></a><i class="conum" data-value="2"></i>
            "predicted_classes" : [ <a id="CO600-3"></a><i class="conum" data-value="3"></i>
              {
                "predicted_class" : "cat",
                "count" : 12 <a id="CO600-4"></a><i class="conum" data-value="4"></i>
              },
              {
                "predicted_class" : "dog",
                "count" : 0 <a id="CO600-5"></a><i class="conum" data-value="5"></i>
              }
            ],
            "other_predicted_class_doc_count" : 0 <a id="CO600-6"></a><i class="conum" data-value="6"></i>
          },
          {
            "actual_class" : "dog",
            "actual_class_doc_count" : 11,
            "predicted_classes" : [
              {
                "predicted_class" : "dog",
                "count" : 7
              },
              {
                "predicted_class" : "cat",
                "count" : 4
              }
            ],
            "other_predicted_class_doc_count" : 0
          }
        ],
        "other_actual_class_count" : 0
      }
    }
  }</pre>
</div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO600-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>The name of the actual class that the analysis tried to predict.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO600-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>The number of documents in the index that belong to the <code class="literal">actual_class</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO600-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p>This object contains the list of the predicted classes and the number of
predictions associated with the class.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO600-4"><i class="conum" data-value="4"></i></a></p>
</td>
<td align="left" valign="top">
<p>The number of cats in the dataset that are correctly identified as cats.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO600-5"><i class="conum" data-value="5"></i></a></p>
</td>
<td align="left" valign="top">
<p>The number of cats in the dataset that are incorrectly classified as dogs.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO600-6"><i class="conum" data-value="6"></i></a></p>
</td>
<td align="left" valign="top">
<p>The number of documents that are classified as a class that is not listed as
a <code class="literal">predicted_class</code>.</p>
</td>
</tr>
</table>
</div>
</div>

</div>

</div>
<div class="navfooter">
<span class="prev">
<a href="delete-inference.html">« Delete inference trained model API</a>
</span>
<span class="next">
<a href="explain-dfanalytics.html">Explain data frame analytics API »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
